package communication;

import game.Player;
import client.ClientInternals;
/**
 * Indique que la liste des clients a change
 * @author Julien Roch, Constantin Laurent, Gander Jonathan
 *
 */
public class ClientListChanged extends ComSrvCli {

	/**
	 * Pour la serialization
	 */
	private static final long serialVersionUID = 5183860917130735383L;
	
	/**
	 * Liste des clients (pseudos seulement). Object pour pouvoir utiliser directement toArray() sur la map des clients
	 * @see ClientConnect#handleServerInternals(ServerInternals)
	 * @see ClientDisconnect#handleServerInternals(ServerInternals)
	 */
	private Object[] clients;
	
	/**
	 * Constructeur du message
	 * @param clients la (nouvelle) liste des clients
	 */
	public ClientListChanged(Object[] clients){
		this.clients = clients.clone();
	}
	
	/**
	 * Affiche la nouvelle liste des clients
	 */
	@Override
	public void handleClientInternals(ClientInternals internals) {
		
		Player[] p = new Player[clients.length];
		
		int i = 0;
		for(Object c : clients){
			p[i++]= new Player((String)c, null);
		}
		internals.setPlayerList(p);
	}
}